#include <iostream>
#include <cstring>
#include <vector>
#include <string>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
using namespace std;

// // int main()
// // {
// //     cout << "task begin ---------" << endl;
// //     pid_t pid = fork();
// //     if (pid < 0)
// //     {
// //         cerr << strerror(pid) << endl;
// //         abort();
// //     }
// //     else if (pid == 0)
// //     {
// //         int cnt = 5;
// //         while (cnt)
// //         {
// //             printf("PID : %d , PPID : %d , cnt = %d\n", getpid(), getppid(), cnt--);
// //             sleep(1);
// //         }
// //         exit(100);
// //     }
// //     else
// //     {
// //         while (1)
// //         {
// //             int status = 0;
// //             pid_t wpid = waitpid(pid, &status, WNOHANG);
// //             if (wpid < 0)
// //             {
// //                 cerr << strerror(wpid) << endl;
// //                 abort();
// //                 break;
// //             }
// //             else if (wpid == 0)
// //             {
// //                 cout << "child doing things... || father working..." << endl;
// //                 sleep(1);
// //             }
// //             else
// //             {
// //                 cout << "father waitpid success" << endl;
// //                 if (((status >> 8) & 0xff) != 0)
// //                     printf("ExitCode : %d\n", (status >> 8) & 0xff);
// //                 else if ((status & 0x7f) != 0)
// //                     printf("ExitSignal : %d\n", status & 0x7f);
// //                 else
// //                     cout << "ExitCode and ExitSignal == 0" << endl;
// //                 break;
// //             }
// //         }
// //     }
// //     cout << "task end ---------" << endl;
// //     return 0;
// // }

// int main()
// {
//     // cout << getuid() << endl;
//     pid_t pid = fork();
//     if (pid < 0)
//     {
//         perror("fork failed");
//         exit(1);
//     }
//     else if (pid == 0)
//     {
//         cout << "my name is child , my PID : " << getpid() << endl;
//         // int ret1 = execl("/home/keli/cc_study/Cplusplus/review/test12", "test12", NULL);
//         // if (ret1 == -1)
//         // {
//         //     perror("execl failed");
//         //     exit(2);
//         // }

//         // int ret2 = execlp("ls", "-a", "-l", "-i", NULL);
//         // if (ret2 == -1)
//         // {
//         //     perror("execl failed");
//         //     exit(2);
//         // }

//         // int ret2 = execlp("pwd", "pwd", NULL);
//         // if (ret2 == -1)
//         // {
//         //     perror("execl failed");
//         //     exit(2);
//         // }

//         // char *arr[] = {"my_id = 2025", NULL};
//         // int ret2 = execle("/home/keli/cc_study/Cplusplus/review/test12", "test12", NULL, arr);
//         // if (ret2 == -1)
//         // {
//         //     perror("execl failed");
//         //     exit(2);
//         // }

//         // char* arr[] = {"test12", NULL};
//         // int ret2 = execv("/home/keli/cc_study/Cplusplus/review/test12", arr);
//         // if (ret2 == -1)
//         // {
//         //     perror("execl failed");
//         //     exit(2);
//         // }

//         char *arr[] = {"ls", "-a", "-i", "-l", NULL};
//         int ret2 = execvp("ls", arr);
//         if (ret2 == -1)
//         {
//             perror("execl failed");
//             exit(2);
//         }
//         exit(10);
//     }
//     else
//     {
//         while (1)
//         {
//             int status = 0;
//             pid_t wpid = waitpid(pid, &status, WNOHANG);
//             if (wpid < 0)
//             {
//                 perror("waitpid failed");
//                 exit(100);
//                 break;
//             }
//             else if (wpid == 0)
//             {
//                 cout << "child doing things..." << endl;
//                 sleep(1);
//             }
//             else
//             {
//                 cout << "father waitpid : " << wpid << " success " << endl;
//                 if (((status >> 8) & 0xff) != 0)
//                     cout << "ExitCode : " << ((status >> 8) & 0xff) << endl;
//                 else if ((status & 0x7f) != 0)
//                     cout << "ExitSignal : " << (status & 0x7f) << endl;
//                 else
//                     cout << "ExitCode : " << ((status >> 8) & 0xff) << " ExitSignal : " << (status & 0x7f) << endl;
//                 break;
//             }
//         }
//     }
//     return 0;
// }

// int main()
// {
//     int a = 3, b =5, c = 8;
//     int A=0,B=0,C=0;
//     int m = 0;
//     for(int i=0;i<=24;i++)
//     {
//         for(int j=0;j<=24;j++)
//         {
//             for(int z=0;z<=24;z++)
//             {
//                 if(i*3 + j*5 + z*c == 127 && i+j+z == 24)
//                 {
//                     m = max(m,j);
//                 }
//             }
//         }
//     }
//     cout << m << endl;
//     return 0;
// }